home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-06-12 | 1.6 KB | 71 lines | [TEXT/CWIE] |
- /*------------------------------------------------------------------------------
- #
- # NewsTicker, my Hack for 1997
- #
- # BeachBall.cp - Just a simple class to spin the beach ball while waiting
- #
- ------------------------------------------------------------------------------*/
-
- #include "BeachBall.h"
-
- #define kBeachBallIntervalInTicks 2
-
-
- BeachBall::BeachBall(short firstCursorID,
- short numCursors,
- short resFileRefNum)
- :
- mResFileRefNum(resFileRefNum),
- mFirstBeachBallCursorID(firstCursorID),
- mNumBeachBallCursors(numCursors),
- mBeachBallIntervalInTicks(kBeachBallIntervalInTicks),
- mCurrentBeachBallCursorID(firstCursorID),
- mTicksAtPrevBeachBall(0)
- {
- }
-
-
- BeachBall::~BeachBall()
- {
- InitCursor();
- }
-
-
- void BeachBall::Idle()
- {
- unsigned long currentTicks;
- CCrsrHandle hColorCursor;
- CursHandle hCursor;
- Cursor cursor;
- short prevResFile;
-
- currentTicks = TickCount();
- if (currentTicks < mTicksAtPrevBeachBall + mBeachBallIntervalInTicks)
- return;
-
- mTicksAtPrevBeachBall = currentTicks;
- if (mCurrentBeachBallCursorID >= mFirstBeachBallCursorID + mNumBeachBallCursors)
- mCurrentBeachBallCursorID = mFirstBeachBallCursorID;
- else
- mCurrentBeachBallCursorID++;
-
- prevResFile = CurResFile();
- UseResFile(mResFileRefNum);
- hColorCursor = GetCCursor(mCurrentBeachBallCursorID);
- if (hColorCursor)
- {
- SetCCursor(hColorCursor);
- DisposeCCursor(hColorCursor);
- }
- else
- {
- hCursor = (CursHandle)GetResource('CURS', mCurrentBeachBallCursorID);
- if (hCursor)
- {
- cursor = **hCursor;
- ReleaseResource((Handle)hCursor);
- SetCursor(&cursor);
- }
- }
- UseResFile(prevResFile);
- }